/*
 * DataStore.h
 *
 *  Created on: 2017年3月5日
 *      Author: chuanjiang.zh
 */

#ifndef DATASTORE_H_
#define DATASTORE_H_

#include "BasicType.h"
#include "SharedPtr.h"
#include "PersonFlow.h"
#include <string>
#include <vector>


class DataStore
{
public:
	static const size_t MAX_ROW = 1000;

public:
	virtual ~DataStore() {}

	virtual bool open(const std::string& path) =0;

    virtual void close() =0;

    virtual bool isOpen() =0;


    virtual bool execute(const std::string& sql) =0;

    virtual bool query(const std::string& sql, std::string& value) =0;

    virtual bool query(const std::string& sql, int& value) =0;

    virtual int update(const std::string& sql) =0;


	virtual bool setFlowCount(const std::string& id, const PersonFlowCount& flowCount) =0;

	virtual bool removeFlowCount(const std::string& id) =0;

	virtual bool getFlowCount(const std::string& id, PersonFlowCount& flowCount) =0;


};

typedef std::shared_ptr< DataStore >    DataStorePtr;


#endif /* DATASTORE_H_ */
